From 86e7c7dfe9b4efe3c299870a5f967f0ffe33b245 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Tue, 26 Feb 2002 03:23:45 +0000 Subject: [PATCH] Fix double set of bindings for page-up/down. (#72605, Tor Lillquist) Mon Feb 25 22:10:47 2002 Owen Taylor * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix double set of bindings for page-up/down. (#72605, Tor Lillquist) * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers when setting up accelerator to make accelerators look prettier. (#65416, Guillermo S. Romero) --- ChangeLog | 9 +++++++++ ChangeLog.pre-2-0 | 9 +++++++++ ChangeLog.pre-2-10 | 9 +++++++++ ChangeLog.pre-2-2 | 9 +++++++++ ChangeLog.pre-2-4 | 9 +++++++++ ChangeLog.pre-2-6 | 9 +++++++++ ChangeLog.pre-2-8 | 9 +++++++++ gtk/gtkmenu.c | 18 +++++++++++++++--- gtk/gtkscrolledwindow.c | 5 ----- 9 files changed, 78 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1eb0248bf8..28bbe500c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Mon Feb 25 22:10:47 2002 Owen Taylor + + * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix + double set of bindings for page-up/down. (#72605, Tor Lillquist) + + * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers + when setting up accelerator to make accelerators look prettier. + (#65416, Guillermo S. Romero) + 2002-02-26 Tor Lillqvist * gdk/win32/gdkkeys-win32.c: Implement the functions that until diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 1eb0248bf8..28bbe500c3 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,12 @@ +Mon Feb 25 22:10:47 2002 Owen Taylor + + * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix + double set of bindings for page-up/down. (#72605, Tor Lillquist) + + * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers + when setting up accelerator to make accelerators look prettier. + (#65416, Guillermo S. Romero) + 2002-02-26 Tor Lillqvist * gdk/win32/gdkkeys-win32.c: Implement the functions that until diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 1eb0248bf8..28bbe500c3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Mon Feb 25 22:10:47 2002 Owen Taylor + + * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix + double set of bindings for page-up/down. (#72605, Tor Lillquist) + + * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers + when setting up accelerator to make accelerators look prettier. + (#65416, Guillermo S. Romero) + 2002-02-26 Tor Lillqvist * gdk/win32/gdkkeys-win32.c: Implement the functions that until diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 1eb0248bf8..28bbe500c3 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,12 @@ +Mon Feb 25 22:10:47 2002 Owen Taylor + + * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix + double set of bindings for page-up/down. (#72605, Tor Lillquist) + + * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers + when setting up accelerator to make accelerators look prettier. + (#65416, Guillermo S. Romero) + 2002-02-26 Tor Lillqvist * gdk/win32/gdkkeys-win32.c: Implement the functions that until diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 1eb0248bf8..28bbe500c3 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +Mon Feb 25 22:10:47 2002 Owen Taylor + + * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix + double set of bindings for page-up/down. (#72605, Tor Lillquist) + + * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers + when setting up accelerator to make accelerators look prettier. + (#65416, Guillermo S. Romero) + 2002-02-26 Tor Lillqvist * gdk/win32/gdkkeys-win32.c: Implement the functions that until diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 1eb0248bf8..28bbe500c3 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Mon Feb 25 22:10:47 2002 Owen Taylor + + * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix + double set of bindings for page-up/down. (#72605, Tor Lillquist) + + * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers + when setting up accelerator to make accelerators look prettier. + (#65416, Guillermo S. Romero) + 2002-02-26 Tor Lillqvist * gdk/win32/gdkkeys-win32.c: Implement the functions that until diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 1eb0248bf8..28bbe500c3 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Mon Feb 25 22:10:47 2002 Owen Taylor + + * gtk/gtkscrolledwindow.c (gtk_scrolled_window_class_init): Fix + double set of bindings for page-up/down. (#72605, Tor Lillquist) + + * gtk/gtkmenu.c (gtk_menu_key_press): Remove consumed modiifers + when setting up accelerator to make accelerators look prettier. + (#65416, Guillermo S. Romero) + 2002-02-26 Tor Lillqvist * gdk/win32/gdkkeys-win32.c: Implement the functions that until diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 422e8d3b1f..86814a16de 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -1733,6 +1733,7 @@ gtk_menu_key_press (GtkWidget *widget, gboolean can_change_accels; gchar *accel = NULL; guint accel_key, accel_mods; + GdkModifierType consumed_modifiers; g_return_val_if_fail (GTK_IS_MENU (widget), FALSE); g_return_val_if_fail (event != NULL, FALSE); @@ -1791,10 +1792,21 @@ gtk_menu_key_press (GtkWidget *widget, g_object_get (G_OBJECT (gtk_settings_get_default ()), "gtk-can-change-accels", &can_change_accels, NULL); - - accel_key = event->keyval; - accel_mods = event->state & gtk_accelerator_get_default_mod_mask (); + /* Figure out what modifiers went into determining the key symbol */ + gdk_keymap_translate_keyboard_state (gdk_keymap_get_default (), + event->hardware_keycode, event->state, event->group, + NULL, NULL, NULL, &consumed_modifiers); + + accel_key = gdk_keyval_to_lower (event->keyval); + accel_mods = event->state & gtk_accelerator_get_default_mod_mask () & ~consumed_modifiers; + + /* If lowercasing affects the keysym, then we need to include SHIFT in the modifiers, + * We re-upper case when we match against the keyval, but display and save in caseless form. + */ + if (accel_key != event->keyval) + accel_mods |= GDK_SHIFT_MASK; + /* Modify the accelerators */ if (can_change_accels && menu_shell->active_menu_item && diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index b22282e687..e3d20895d4 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -308,11 +308,6 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class) add_scroll_binding (binding_set, GDK_Page_Up, 0, GTK_SCROLL_PAGE_BACKWARD, FALSE); add_scroll_binding (binding_set, GDK_Page_Down, 0, GTK_SCROLL_PAGE_FORWARD, FALSE); - add_scroll_binding (binding_set, GDK_Page_Up, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_BACKWARD, TRUE); - add_scroll_binding (binding_set, GDK_Page_Down, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_FORWARD, TRUE); - add_scroll_binding (binding_set, GDK_Page_Up, 0, GTK_SCROLL_PAGE_BACKWARD, FALSE); - add_scroll_binding (binding_set, GDK_Page_Down, 0, GTK_SCROLL_PAGE_FORWARD, FALSE); - add_scroll_binding (binding_set, GDK_Home, 0, GTK_SCROLL_START, TRUE); add_scroll_binding (binding_set, GDK_End, 0, GTK_SCROLL_END, TRUE); add_scroll_binding (binding_set, GDK_Home, GDK_CONTROL_MASK, GTK_SCROLL_START, FALSE); -- 2.30.2